package com.ktgj.flight.common.hangbanguanjia;

import com.ktgj.flight.common.hangbanguanjia.domain.HangResponse;
import com.ktgj.flight.domain.InterfaceEntity.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface HangBanGuanJia {
    //获取token
    String getToken();

    //查询航班
    MoFlightSearchResponse flightSearch(MoFlightSearchRequest moRequest);

    //验舱验价
    MoFlightCheckResponse flightCheck(MoFlightCheckRequest moRequest);

    //查询往返航班列表
    HangResponse getRTFlight(Map<String, Object> map);

    //查询指定往返航班
    HangResponse getRTFlightDetail(Map<String, Object> map);

    //提交订单
    MoCreateOrderResponse orderCreate(MoCreateOrderRequest request);

    //取消订单
    MoCancelOrderResponse cancelOrder(MoCancelOrderRequest request);

    //查询订单详情
    MoQueryOrderResponse queryOrderInfo(MoQueryOrderRequest request);

    //出票前确认
    MoOrderCheckResponse orderCheck(MoOrderCheckRequest request);

    //提交出票(改期)
    MoOrderPayResponse orderPay(MoOrderPayRequest request);

    //查询退改规则
    HangResponse ticketRule(Map<String, Object> map);

    //查询退改手续费
    MoOrderRefundCaltResponse orderRefundCalt(MoOrderRefundCaltRequest request);

    //提交退票申请
    MoOrderRefundResponse orderRefund(MoOrderRefundRequest request);

    //查询改期航班列表
    MoFlightSearchResponse searchChangeDateFlightInfo(MoRescheduleSearchRequest moRequest);

    //改期前确认
    MoChangeConfirmResponse changeConfirm(MoChangeConfirmRequest request);

    //提交改期申请
    MoOrderChangeResponse orderChange(MoOrderChangeRequest request);

    //上传退改证明材料
    HangResponse attachUplod(MultipartFile[] multipartFiles);

    //提交退改证明材料
    MoAttachmentResponse addAttachment(MoAttachmentRequest request);

}
